package com.exception;

/**
 * @功能：异常机制
 * @版本： V1
 * @版权： 信息技术有限公司（http://www.mychery.com/）
 * @作者： 磐石战队开发组  00355760
 * @日期： 2024/8/8 13:50
 */
public class demo02 {

    public static void main(String[] args) {
        int a = 1;
        int b = 0;
        try {
            new demo02().test(1,0);
        } catch (ArithmeticException e) {
            e.printStackTrace();
        }
        //        System.out.println(a/b);
        try {
            System.out.println(a/b);
        }catch(ArithmeticException e){
            System.out.println("程序出现异常，变量b不能为0");
        }finally {//finally 处理善后工作，可以不要，假设IO，资源关闭
            System.out.println("finally");
            System.out.println("===============");
        }
        //假设要捕获多个异常：：从小到大！
        try {
            new demo02().a();
        } catch(Error e){//catch(想要捕获的异常类型) 捕获异常
            System.out.println("Error");
        } catch(Exception e){//catch(想要捕获的异常类型)
            System.out.println("Exception");
        } catch(Throwable e){//catch(想要捕获的异常类型)
            System.out.println("Throwable");
        } finally {//finally 处理善后工作，可以不要，假设IO，资源关闭
            System.out.println("finally");
        }
    }
    public void test(int a,int b) throws ArithmeticException{
        if(b == 0){//throw throws
            throw new ArithmeticException();//主动的抛出异常，一般在方法中使用
        }
    }
    public void a(){
        b();
    }
    public void b(){
        a();
    }
}
